package StringExercise;

/**
 * ClassName:RomanNumber3
 * Package:StringExercise
 * Description:
 *
 * @Author:ZhangXin
 * @Create2023/1/17-16:38
 * @Version:v1.0
 */
public class RotateString001 {
    /*
     * 给定两个字符串,A和B
     * A的旋转操作就是将A最左边的字符移动到最右边
     * 例如,若A='abcde',在移动一次之后结果就是'bcdea'
     * 如果在若干次调整操作之后,A能变成B,那么返回True
     * 如果不能匹配成功,则返回false*/
    public static void main(String[] args) {
        String strA = "abcde";
        String strB = "cdeab";

        //旋转字符串
        strA = rotate(strA);
        System.out.println(strA);


        //调用方法进行比较
        boolean result = check(strA,strB);
        System.out.println(result);

    }
    public static boolean check(String strA,String strB){
        for (int i = 0; i < strA.length(); i++) {
            strA = rotate(strA);
            if(strA.equals(strB)){
                return true;
            }
        }
        return false;
    }


    //作用：旋转字符串,把左侧的字符串移动到右侧
    public static String rotate(String str) {
        //套路：
        //如果我们看到要修改字符串内容
        //两种方法
        /*
         * 1.用subString进行截取,把左边的字符串截取出来拼接到右侧去
         * 2.可以把字符串先变成一个字符数组,然后调整字符数组里面数据,最后再把字符数组变成字符串*/
        //截取思路
        //获取最左侧的字符
        char first = str.charAt(0);
        String end = str.substring(1);
        return end + first;
    }
}
